package sgc;

import java.util.Arrays;

/**
 * @author Diego Pereira do Nascimento e Leonardo Santos Martins
 * 
 * Descrição da classe::
 * Está classe tem como propósito ser utilizada para cadastrar uma nova questão de múltipla escolha
 *  
 */
public class ME extends Questao{

    private String[] pergunta = new String[5];
    private boolean[] resposta = new boolean[5];
    
    //Construtor
    public ME(int id, String en, String p[], boolean r[]){
        super(id, en);
        this.pergunta = p;
        this.resposta = r;
    }
    
    // Gets e Sets
    
    // Para retornar um vetor de String, basta colocar colchetes ("[]") ao lado de String
    // Com isso o caompilador já sabe que será retornado um vetor
    public String[] getPergunta(){
        return this.pergunta;
    }
    public void setPergunta(String p[]){
        this.pergunta = p;
    }
    
    public boolean[] getResposta(){
        return this.resposta;
    }
    public void setResposta(boolean r[]){
        this.resposta = r;
    }
    
    // toString
    @Override
    public String toString() {
        return super.toString() + "\nAlternativas: " + Arrays.toString(this.pergunta) + "\nResposta: " + Arrays.toString(this.resposta);
    }
    
    //Demais métodos
    @Override
    public boolean corrigir(String resp){
        
        // Verificar se a pessoa acertou ou errou
        if(resp.equalsIgnoreCase("a") && this.resposta[0])
            return true;
        else if(resp.equalsIgnoreCase("b") && this.resposta[1])
            return true;
        else if(resp.equalsIgnoreCase("c") && this.resposta[2])
            return true;
        else if(resp.equalsIgnoreCase("d") && this.resposta[3])
            return true;
        else if(resp.equalsIgnoreCase("e") && this.resposta[4])
            return true;
        
        return false;
    }
    
    public static Questao criar(){
        int id;
        String enunciado, pergunta[] = new String[5];    
        boolean resposta[] = new boolean[5];
        Leitura ler = new Leitura();
        
        System.out.println("Digite o numero da questão: ");
        id = ler.lerInt();
        
        System.out.println("Digite o enunciado da questão " + (id+1) + "ª : ");
        enunciado = ler.lerString();
        
        // Sempre serão 5 questões e 5 respostas
        for(int i = 0; i < 5; i++){
            System.out.println("Digite a " + (i+1) + "ª alternativa: ");
            pergunta[i] = ler.lerString();
            
            System.out.println("Digite::\n V para VERDADEIRO\n F para FALSO.");
            System.out.println("Digite a resposta da " + (i+1) + "ª alternativa: ");
            // O vetor respostas será boolean, e como não existe um método lerBoolean é validado através de uma comparação
            // Se o usuário digitar "V" ou "v" será considerado verdadeiro, qualquer coisa além disso será considerado falso
            resposta[i] =  ler.lerString().equalsIgnoreCase("V");
        }   
        
        Questao quest = new ME(id, enunciado, pergunta, resposta);
        
        return quest;
    }
}
